﻿using Entity.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.ModelConfiguration;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Entity.Mapping
{
    public class RecebimentoMap : EntityTypeConfiguration<Recebimento>
    {
        public RecebimentoMap()
        {
            //Chave primaria
            this.HasKey(t => t.Id);

            //Propriedades
            this.Property(t => t.Id)
                .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);

            //Mapeamento tabela e coluna
            this.ToTable("Recebimento", "Sgf");
            this.Property(t => t.Id).HasColumnName("Id");
            this.Property(t => t.CategoriaRecebimentoId).HasColumnName("CategoriaRecebimentoId");
            this.Property(t => t.ValorRecebido).HasColumnName("ValorRecebido");
            this.Property(t => t.DataRecebimento).HasColumnName("DataRecebimento");
            this.Property(t => t.UsuarioId).HasColumnName("UsuarioId");

            //Relacionamento
            this.HasRequired(t => t.CategoriaRedebimento)
                .WithMany(t => t.Recebimento)
                .HasForeignKey(d => d.CategoriaRecebimentoId);

            this.HasRequired(t => t.Usuario)
                .WithMany(t => t.Recebimento)
                .HasForeignKey(d => d.UsuarioId);
        }
    }
}
